/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * BuscaProduto.java
 *
 * Created on 27/05/2013, 22:13:51
 */
package View.Venda;

import Model.ProdutoModel;
import Repositories.ProdutoRepository;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import org.netbeans.lib.awtextra.AbsoluteLayout;

/**
 *
 * @author Yanne
 */
public class BuscaProduto extends javax.swing.JDialog {

    public String getCodigo() {
        return codigo;
    }

    public String getDescricao() {
        return descricao;
    }

    public String getValor() {
        return valor;
    }
    public String codigo;
    public String descricao;
    public String valor;
    ProdutoRepository produtoRepository = new ProdutoRepository();
    DefaultTableModel model = new DefaultTableModel(new Object[][]{}, new Object[]{"Código", "Descrição", "Valor"}){
            public boolean isCellEditable(int rowIndex, int mColIndex) {  
                return false;  
            }  
        };  

    public BuscaProduto(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();

        TabelaProdutos.setModel(model);
        System.out.print("-------------------CHAMOU O FRAME ---------------");
        txtPesquisar.grabFocus();
    }

    public BuscaProduto(java.awt.Dialog parent, boolean modal) {
        super(parent, modal);
        initComponents();
        this.setLocationRelativeTo(null);

        AbsoluteLayout absoluto = null;
        jp_buscaProduto.setLayout(absoluto);

        //bg novo usuario?
        JLabel jl_buscaProduto = new JLabel(new ImageIcon("./img/bg_buscaProduto.png"));
        jp_buscaProduto.add(jl_buscaProduto);
        // jpn_listaProduto.setVisible(true);
        jl_buscaProduto.setBounds(0, 0, 470, 470);

        TabelaProdutos.setModel(model);
        txtPesquisar.grabFocus();
    }

    private void Busca() {
        try {
            ArrayList<ProdutoModel> produtos = null;
            if (cbTipo.getSelectedIndex() == 0) {
                produtos = produtoRepository.BuscaProduto(txtPesquisar.getText(), 2);
            } else {
                if (txtPesquisar.getText() != null) {
                    produtos = produtoRepository.BuscaProdutoId(Integer.parseInt(txtPesquisar.getText()));
                } else {
                    produtos = produtoRepository.BuscaProduto(txtPesquisar.getText(), 2);
                }
            }

            if (produtos != null) {
                for (ProdutoModel produto : produtos) {
                    model.addRow(new Object[]{produto.getPRODUTO_ID(), produto.getPRODUTO_DESCRICAO(), produto.getPRODUTO_VALOR()});
                }

                TabelaProdutos.setModel(model);
            } else {
                JOptionPane.showMessageDialog(null, "Nenhum produto encontrado!");
            }

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jp_buscaProduto = new javax.swing.JPanel();
        btnEscolher = new javax.swing.JButton();
        btnSair = new javax.swing.JButton();
        cbTipo = new javax.swing.JComboBox();
        txtPesquisar = new javax.swing.JTextField();
        btnPesquisar = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        TabelaProdutos = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jp_buscaProduto.setBackground(new java.awt.Color(153, 153, 255));
        jp_buscaProduto.setMinimumSize(new java.awt.Dimension(470, 470));
        jp_buscaProduto.setPreferredSize(new java.awt.Dimension(470, 470));
        jp_buscaProduto.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        btnEscolher.setText("Escolher");
        btnEscolher.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnEscolherActionPerformed(evt);
            }
        });
        jp_buscaProduto.add(btnEscolher, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 360, 114, 46));

        btnSair.setText("Sair");
        btnSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSairActionPerformed(evt);
            }
        });
        jp_buscaProduto.add(btnSair, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 360, 114, 46));

        cbTipo.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        cbTipo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Descrição", "Código" }));
        jp_buscaProduto.add(cbTipo, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 45, 99, 26));

        txtPesquisar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtPesquisarActionPerformed(evt);
            }
        });
        jp_buscaProduto.add(txtPesquisar, new org.netbeans.lib.awtextra.AbsoluteConstraints(120, 40, 200, 36));

        btnPesquisar.setText("Pesquisar");
        btnPesquisar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnPesquisarActionPerformed(evt);
            }
        });
        jp_buscaProduto.add(btnPesquisar, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 40, 123, 36));

        TabelaProdutos.setFont(new java.awt.Font("Arial", 1, 14)); // NOI18N
        TabelaProdutos.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        TabelaProdutos.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                TabelaProdutosMouseClicked(evt);
            }
        });
        jScrollPane1.setViewportView(TabelaProdutos);

        jp_buscaProduto.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 80, 446, 250));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jp_buscaProduto, javax.swing.GroupLayout.PREFERRED_SIZE, 470, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jp_buscaProduto, javax.swing.GroupLayout.DEFAULT_SIZE, 470, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

private void btnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPesquisarActionPerformed
    Busca();
}//GEN-LAST:event_btnPesquisarActionPerformed

private void txtPesquisarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtPesquisarActionPerformed
    Busca();
}//GEN-LAST:event_txtPesquisarActionPerformed

private void TabelaProdutosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_TabelaProdutosMouseClicked
    if (evt.getClickCount() > 1) {  
  Escolher();
} 
}//GEN-LAST:event_TabelaProdutosMouseClicked

private void btnSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSairActionPerformed
    this.dispose();
}//GEN-LAST:event_btnSairActionPerformed

private void btnEscolherActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnEscolherActionPerformed
    Escolher();
}//GEN-LAST:event_btnEscolherActionPerformed

    private void Escolher() {

        try {
            Object codigoProduto = TabelaProdutos.getValueAt(TabelaProdutos.getSelectedRow(), 0);
            Object descricaoProduto = TabelaProdutos.getValueAt(TabelaProdutos.getSelectedRow(), 1);
            Object valorProduto = TabelaProdutos.getValueAt(TabelaProdutos.getSelectedRow(), 2);

            this.codigo = codigoProduto.toString();
            this.descricao = descricaoProduto.toString();
            this.valor = valorProduto.toString();

            this.dispose();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(BuscaProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(BuscaProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(BuscaProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(BuscaProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the dialog */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                BuscaProduto dialog = new BuscaProduto(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {

                    @Override
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTable TabelaProdutos;
    private javax.swing.JButton btnEscolher;
    private javax.swing.JButton btnPesquisar;
    private javax.swing.JButton btnSair;
    private javax.swing.JComboBox cbTipo;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JPanel jp_buscaProduto;
    private javax.swing.JTextField txtPesquisar;
    // End of variables declaration//GEN-END:variables
}
